﻿using System;
using System.Collections.Generic;
using Diploma.Models.Entities;
using Microsoft.Office.Interop.Word;

namespace Diploma.Models.IRepositories
{
    public interface IOrderPracticeRepository
    {
        /// <summary>
        /// Получание приказа на практику
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        OrderPractice GetOrder(Guid id);

        /// <summary>
        /// Создание нового документа
        /// </summary>
        /// <param name="orderPractice"></param>
        void CreateOrder(OrderPractice orderPractice);

        /// <summary>
        /// Сохранение состояния информации на данный момент
        /// </summary>
        /// <param name="orderPractice"></param>
        /// <param name="startDate"></param>
        /// <param name="stopDate"></param>
        void SaveState(OrderPractice orderPractice, DateTime startDate, DateTime stopDate);

        IEnumerable<OrderPractice> GetAll();
        void AttachStudentsToOrder(Guid groupId, Guid orderId);
        void RemoveStudentsFromOrder(Guid studentId, Guid orderId);
        void SaveState(Guid orderId, IEnumerable<StudentEntity> students);
        SaveStateOrderPractice GetStudentFromSSOP(Guid studentId);
        void Delete(Guid orderId);

        void SaveChanges();
    }
}